// 给定一个 没有重复 数字的序列，返回其所有可能的全排列。
// 思路，回溯
// 排列是有序的，所以不用startIndex
function permute(nums) {
    let result = []
    let path = []
    function backtracking() {
        if (path.length === nums.length) {
            result.push([...path])
            return
        }
        for (let i = 0; i < nums.length; i++) {
            if (!path.includes(nums[i])) {
                path.push(nums[i])
                backtracking()
                path.pop()
            }            
        }
    }
    backtracking()
    return result
}

console.log(permute([1,2,3]))